Common Information Model (“CIM”) is a standard set forth by the Distributed Management Task Force (“DMTF”) that allows for a common model of providing information regardless of hardware or operating system (“OS”) platform. CIM provides a common definition of management information for systems, networks, applications and services and allows for vendor extensions thereto. CIM is a vendor-agnostic industry management standard. A CIM object manager (“CIMOM”), such as Web-Based Enterprise Management (“WBEM”), is essentially a server for servicing CIM requests.
CIM is comprised of a Specification and a Schema. The CIM Schema provides the actual model descriptions, while the CIM Specification defines the details for integration with other management models. In particular, the CIM Schema comprises a set of classes with properties and associations that provide a well-understood conceptual framework within which it is possible to organize the available information about the managed environment. The formal definition of the CIM Schema is expressed in a Managed Object File (“MOF”), which is an ASCII or UNICODE file that can be used as input into a MOF editor, parser, or compiler for use in an application. The Unified Modeling Language (“UML”) is used to visually portray the structure of the CIM schema. CIM defines the data that is transported via the encoding and transport definitions of the CIMOM (e.g., WBEM).
The CIM Schema is structured into three distinct layers. These include a Core Schema, Common Schemas, and Extension Schemas. The Core Schema is an information model that captures notions that are applicable to all areas of management. Common Schemas are informational models that capture notions that are common to particular management areas, but are independent of technology or implementation. Extension Schemas represent organizational- or vendor-specific extension of the Common Schema.
A CIM provider provides on a CIM platform data representing a single entity. In the case of hardware, there will theoretically be an instance of a CIM object representing each component, including, for example, each processor, video card, etc. Hardware data is derived from multiple sources, including, but not limited to, Intelligent Platform Management Interface (“IPMI”), Hardware Abstraction Layer (“HAL”), System Management BIOS (“SMBIOS”), sysfs, and proprietary third party sources. Each of these sources has its own interface, some of which are very complex. There could be a representation of each component in only one, many, or all of the available data sources.
The process of developing managed services is very tedious and time consuming with current language-bound CIM providers. Additionally, there is a need for legacy services, such as Linux services, to be managed in a fashion that does not require the service itself to change.